home *** CD-ROM | disk | FTP | other *** search
/ Champak 141 / (Vol 141) Oct 17 2011.iso / Games / Clueless.swf / scripts / fl / video / FLVPlayback.as < prev    next >
Encoding:
Text File  |  2011-10-17  |  72.6 KB  |  2,112 lines

  1. package fl.video
  2. {
  3.    import flash.display.*;
  4.    import flash.events.*;
  5.    import flash.geom.Rectangle;
  6.    import flash.media.*;
  7.    import flash.net.*;
  8.    import flash.utils.*;
  9.    
  10.    use namespace flvplayback_internal;
  11.    
  12.    [Embed(source="/_assets/assets.swf", symbol="fl.video.FLVPlayback")]
  13.    public class FLVPlayback extends Sprite
  14.    {
  15.       
  16.       public static const SEEK_TO_PREV_OFFSET_DEFAULT:Number = 1;
  17.       
  18.       public static const SHORT_VERSION:String = "2.1";
  19.       
  20.       public static const VERSION:String = "2.1.0.14";
  21.       
  22.       flvplayback_internal static const DEFAULT_SKIN_SHOW_TIMER_INTERVAL:Number = 2000;
  23.       
  24.       flvplayback_internal static const skinShowTimerInterval:Number = flvplayback_internal::DEFAULT_SKIN_SHOW_TIMER_INTERVAL;
  25.        
  26.       
  27.       private var _playheadUpdateInterval:Number;
  28.       
  29.       private var _align:String;
  30.       
  31.       flvplayback_internal var videoPlayerStateDict:Dictionary;
  32.       
  33.       flvplayback_internal var cuePointMgrs:Array;
  34.       
  35.       private var _volume:Number;
  36.       
  37.       private var _origHeight:Number;
  38.       
  39.       flvplayback_internal var videoPlayerStates:Array;
  40.       
  41.       private var _progressInterval:Number;
  42.       
  43.       private var _seekToPrevOffset:Number;
  44.       
  45.       private var _origWidth:Number;
  46.       
  47.       private var _scaleMode:String;
  48.       
  49.       flvplayback_internal var resizingNow:Boolean;
  50.       
  51.       flvplayback_internal var videoPlayers:Array;
  52.       
  53.       private var _bufferTime:Number;
  54.       
  55.       private var _aspectRatio:Boolean;
  56.       
  57.       private var _autoRewind:Boolean;
  58.       
  59.       flvplayback_internal var uiMgr:UIManager;
  60.       
  61.       private var previewImage_mc:Loader;
  62.       
  63.       private var _componentInspectorSetting:Boolean;
  64.       
  65.       flvplayback_internal var _firstStreamShown:Boolean;
  66.       
  67.       private var _visibleVP:uint;
  68.       
  69.       private var _idleTimeout:Number;
  70.       
  71.       private var _soundTransform:SoundTransform;
  72.       
  73.       public var boundingBox_mc:DisplayObject;
  74.       
  75.       flvplayback_internal var skinShowTimer:Timer;
  76.       
  77.       private var preview_mc:MovieClip;
  78.       
  79.       private var livePreviewHeight:Number;
  80.       
  81.       flvplayback_internal var _firstStreamReady:Boolean;
  82.       
  83.       private var _activeVP:uint;
  84.       
  85.       private var isLivePreview:Boolean;
  86.       
  87.       private var _topVP:uint;
  88.       
  89.       private var livePreviewWidth:Number;
  90.       
  91.       private var __forceNCMgr:NCManager;
  92.       
  93.       private var previewImageUrl:String;
  94.       
  95.       public function FLVPlayback()
  96.       {
  97.          var _loc1_:VideoPlayer = null;
  98.          super();
  99.          mouseEnabled = false;
  100.          isLivePreview = parent != null && getQualifiedClassName(parent) == "fl.livepreview::LivePreviewParent";
  101.          _componentInspectorSetting = false;
  102.          _origWidth = super.width;
  103.          _origHeight = super.height;
  104.          super.scaleX = 1;
  105.          super.scaleY = 1;
  106.          _loc1_ = new VideoPlayer(0,0);
  107.          _loc1_.setSize(_origWidth,_origHeight);
  108.          flvplayback_internal::videoPlayers = new Array();
  109.          flvplayback_internal::videoPlayers[0] = _loc1_;
  110.          _align = _loc1_.align;
  111.          _autoRewind = _loc1_.autoRewind;
  112.          _scaleMode = _loc1_.scaleMode;
  113.          _bufferTime = _loc1_.bufferTime;
  114.          _idleTimeout = _loc1_.idleTimeout;
  115.          _playheadUpdateInterval = _loc1_.playheadUpdateInterval;
  116.          _progressInterval = _loc1_.progressInterval;
  117.          _soundTransform = _loc1_.soundTransform;
  118.          _volume = _loc1_.volume;
  119.          _seekToPrevOffset = SEEK_TO_PREV_OFFSET_DEFAULT;
  120.          flvplayback_internal::_firstStreamReady = false;
  121.          flvplayback_internal::_firstStreamShown = false;
  122.          flvplayback_internal::resizingNow = false;
  123.          flvplayback_internal::uiMgr = new UIManager(this);
  124.          if(isLivePreview)
  125.          {
  126.             flvplayback_internal::uiMgr.visible = true;
  127.          }
  128.          _activeVP = 0;
  129.          _visibleVP = 0;
  130.          _topVP = 0;
  131.          flvplayback_internal::videoPlayerStates = new Array();
  132.          flvplayback_internal::videoPlayerStateDict = new Dictionary(true);
  133.          flvplayback_internal::cuePointMgrs = new Array();
  134.          flvplayback_internal::createVideoPlayer(0);
  135.          boundingBox_mc.visible = false;
  136.          removeChild(boundingBox_mc);
  137.          boundingBox_mc = null;
  138.          if(isLivePreview)
  139.          {
  140.             previewImageUrl = "";
  141.             createLivePreviewMovieClip();
  142.             setSize(_origWidth,_origHeight);
  143.          }
  144.       }
  145.       
  146.       public function set fullScreenTakeOver(param1:Boolean) : void
  147.       {
  148.          flvplayback_internal::uiMgr.fullScreenTakeOver = param1;
  149.       }
  150.       
  151.       public function pause() : void
  152.       {
  153.          var _loc1_:VideoPlayerState = null;
  154.          var _loc2_:VideoPlayer = null;
  155.          if(!flvplayback_internal::_firstStreamShown)
  156.          {
  157.             _loc1_ = flvplayback_internal::videoPlayerStates[_activeVP];
  158.             flvplayback_internal::queueCmd(_loc1_,QueuedCommand.PAUSE);
  159.          }
  160.          else
  161.          {
  162.             _loc2_ = flvplayback_internal::videoPlayers[_activeVP];
  163.             _loc2_.pause();
  164.          }
  165.       }
  166.       
  167.       public function setScale(param1:Number, param2:Number) : void
  168.       {
  169.          var _loc3_:Rectangle = null;
  170.          var _loc4_:Rectangle = null;
  171.          var _loc5_:int = 0;
  172.          var _loc6_:VideoPlayer = null;
  173.          _loc3_ = new Rectangle(x,y,width,height);
  174.          _loc4_ = new Rectangle(registrationX,registrationY,registrationWidth,registrationHeight);
  175.          flvplayback_internal::resizingNow = true;
  176.          _loc5_ = 0;
  177.          while(_loc5_ < flvplayback_internal::videoPlayers.length)
  178.          {
  179.             if((_loc6_ = flvplayback_internal::videoPlayers[_loc5_]) !== null)
  180.             {
  181.                _loc6_.setSize(_origWidth * param1,_origWidth * param2);
  182.             }
  183.             _loc5_++;
  184.          }
  185.          flvplayback_internal::resizingNow = false;
  186.          dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT,false,false,_loc3_,_loc4_));
  187.       }
  188.       
  189.       public function stop() : void
  190.       {
  191.          var _loc1_:VideoPlayerState = null;
  192.          var _loc2_:VideoPlayer = null;
  193.          if(!flvplayback_internal::_firstStreamShown)
  194.          {
  195.             _loc1_ = flvplayback_internal::videoPlayerStates[_activeVP];
  196.             flvplayback_internal::queueCmd(_loc1_,QueuedCommand.STOP);
  197.          }
  198.          else
  199.          {
  200.             _loc2_ = flvplayback_internal::videoPlayers[_activeVP];
  201.             _loc2_.stop();
  202.          }
  203.       }
  204.       
  205.       public function set align(param1:String) : void
  206.       {
  207.          var _loc2_:VideoPlayer = null;
  208.          if(_activeVP == 0)
  209.          {
  210.             _align = param1;
  211.          }
  212.          _loc2_ = flvplayback_internal::videoPlayers[_activeVP];
  213.          _loc2_.align = param1;
  214.       }
  215.       
  216.       public function getVideoPlayer(param1:Number) : VideoPlayer
  217.       {
  218.          return flvplayback_internal::videoPlayers[param1];
  219.       }
  220.       
  221.       public function get playheadTime() : Number
  222.       {
  223.          var _loc1_:VideoPlayer = null;
  224.          _loc1_ = flvplayback_internal::videoPlayers[_activeVP];
  225.          return _loc1_.playheadTime;
  226.       }
  227.       
  228.       public function get progressInterval() : Number
  229.       {
  230.          var _loc1_:VideoPlayer = null;
  231.          _loc1_ = flvplayback_internal::videoPlayers[_activeVP];
  232.          return _loc1_.progressInterval;
  233.       }
  234.       
  235.       public function set skinFadeTime(param1:int) : void
  236.       {
  237.          flvplayback_internal::uiMgr.skinFadeTime = param1;
  238.       }
  239.       
  240.       public function get seekToPrevOffset() : Number
  241.       {
  242.          return _seekToPrevOffset;
  243.       }
  244.       
  245.       public function set playheadTime(param1:Number) : void
  246.       {
  247.          seek(param1);
  248.       }
  249.       
  250.       public function get source() : String
  251.       {
  252.          var _loc1_:VideoPlayerState = null;
  253.          var _loc2_:VideoPlayer = null;
  254.          _loc1_ = flvplayback_internal::videoPlayerStates[_activeVP];
  255.          if(_loc1_.isWaiting)
  256.          {
  257.             return _loc1_.url;
  258.          }
  259.          _loc2_ = flvplayback_internal::videoPlayers[_activeVP];
  260.          return _loc2_.source;
  261.       }
  262.       
  263.       public function get activeVideoPlayerIndex() : uint
  264.       {
  265.          return _activeVP;
  266.       }
  267.       
  268.       public function get skinFadeTime() : int
  269.       {
  270.          return flvplayback_internal::uiMgr.skinFadeTime;
  271.       }
  272.       
  273.       public function set scaleMode(param1:String) : void
  274.       {
  275.          var _loc2_:VideoPlayer = null;
  276.          if(_activeVP == 0)
  277.          {
  278.             _scaleMode = param1;
  279.          }
  280.          _loc2_ = flvplayback_internal::videoPlayers[_activeVP];
  281.          _loc2_.scaleMode = param1;
  282.       }
  283.       
  284.       public function set bufferingBar(param1:Sprite) : void
  285.       {
  286.          flvplayback_internal::uiMgr.setControl(UIManager.BUFFERING_BAR,param1);
  287.       }
  288.       
  289.       public function get metadataLoaded() : Boolean
  290.       {
  291.          var _loc1_:CuePointManager = null;
  292.          _loc1_ = flvplayback_internal::cuePointMgrs[_activeVP];
  293.          return _loc1_.metadataLoaded;
  294.       }
  295.       
  296.       public function closeVideoPlayer(param1:uint) : void
  297.       {
  298.          var _loc2_:VideoPlayer = null;
  299.          if(param1 == 0)
  300.          {
  301.             throw new VideoError(VideoError.DELETE_DEFAULT_PLAYER);
  302.          }
  303.          if(flvplayback_internal::videoPlayers[param1] == undefined)
  304.          {
  305.             return;
  306.          }
  307.          _loc2_ = flvplayback_internal::videoPlayers[param1];
  308.          if(_visibleVP == param1)
  309.          {
  310.             visibleVideoPlayerIndex = 0;
  311.          }
  312.          if(_activeVP == param1)
  313.          {
  314.             activeVideoPlayerIndex = 0;
  315.          }
  316.          removeChild(_loc2_);
  317.          _loc2_.close();
  318.          delete flvplayback_internal::videoPlayers[param1];
  319.          delete flvplayback_internal::videoPlayerStates[param1];
  320.          delete flvplayback_internal::videoPlayerStateDict[_loc2_];
  321.       }
  322.       
  323.       public function get scaleMode() : String
  324.       {
  325.          var _loc1_:VideoPlayer = null;
  326.          _loc1_ = flvplayback_internal::videoPlayers[_activeVP];
  327.          return _loc1_.scaleMode;
  328.       }
  329.       
  330.       public function set progressInterval(param1:Number) : void
  331.       {
  332.          var _loc2_:VideoPlayer = null;
  333.          if(_activeVP == 0)
  334.          {
  335.             _progressInterval = param1;
  336.          }
  337.          _loc2_ = flvplayback_internal::videoPlayers[_activeVP];
  338.          _loc2_.progressInterval = param1;
  339.       }
  340.       
  341.       public function get playing() : Boolean
  342.       {
  343.          return state == VideoState.PLAYING;
  344.       }
  345.       
  346.       public function get totalTime() : Number
  347.       {
  348.          var _loc1_:VideoPlayerState = null;
  349.          var _loc2_:VideoPlayer = null;
  350.          if(isLivePreview)
  351.          {
  352.             return 1;
  353.          }
  354.          _loc1_ = flvplayback_internal::videoPlayerStates[_activeVP];
  355.          if(_loc1_.totalTimeSet)
  356.          {
  357.             return _loc1_.totalTime;
  358.          }
  359.          _loc2_ = flvplayback_internal::videoPlayers[_activeVP];
  360.          return _loc2_.totalTime;
  361.       }
  362.       
  363.       public function get ncMgr() : INCManager
  364.       {
  365.          var _loc1_:VideoPlayer = null;
  366.          _loc1_ = flvplayback_internal::videoPlayers[_activeVP];
  367.          return _loc1_.ncMgr;
  368.       }
  369.       
  370.       public function set volume(param1:Number) : void
  371.       {
  372.          var _loc2_:VideoPlayer = null;
  373.          if(_volume == param1)
  374.          {
  375.             return;
  376.          }
  377.          _volume = param1;
  378.          if(!scrubbing)
  379.          {
  380.             _loc2_ = flvplayback_internal::videoPlayers[_visibleVP];
  381.             _loc2_.volume = _volume;
  382.          }
  383.          dispatchEvent(new SoundEvent(SoundEvent.SOUND_UPDATE,false,false,_loc2_.soundTransform));
  384.       }
  385.       
  386.       public function get skinAutoHide() : Boolean
  387.       {
  388.          return flvplayback_internal::uiMgr.skinAutoHide;
  389.       }
  390.       
  391.       public function set source(param1:String) : void
  392.       {
  393.          var _loc2_:VideoPlayerState = null;
  394.          var _loc3_:CuePointManager = null;
  395.          if(isLivePreview)
  396.          {
  397.             return;
  398.          }
  399.          if(param1 == null)
  400.          {
  401.             param1 = "";
  402.          }
  403.          if(_componentInspectorSetting)
  404.          {
  405.             _loc2_ = flvplayback_internal::videoPlayerStates[_activeVP];
  406.             _loc2_.url = param1;
  407.             if(param1.length > 0)
  408.             {
  409.                _loc2_.isWaiting = true;
  410.                addEventListener(Event.ENTER_FRAME,doContentPathConnect);
  411.             }
  412.          }
  413.          else
  414.          {
  415.             if(source == param1)
  416.             {
  417.                return;
  418.             }
  419.             _loc3_ = flvplayback_internal::cuePointMgrs[_activeVP];
  420.             _loc3_.reset();
  421.             _loc2_ = flvplayback_internal::videoPlayerStates[_activeVP];
  422.             _loc2_.url = param1;
  423.             _loc2_.isWaiting = true;
  424.             doContentPathConnect(_activeVP);
  425.          }
  426.       }
  427.       
  428.       public function set activeVideoPlayerIndex(param1:uint) : void
  429.       {
  430.          if(_activeVP == param1)
  431.          {
  432.             return;
  433.          }
  434.          _activeVP = param1;
  435.          if(flvplayback_internal::videoPlayers[_activeVP] == undefined)
  436.          {
  437.             flvplayback_internal::createVideoPlayer(_activeVP);
  438.          }
  439.       }
  440.       
  441.       override public function set soundTransform(param1:SoundTransform) : void
  442.       {
  443.          var _loc2_:VideoPlayer = null;
  444.          if(param1 == null)
  445.          {
  446.             return;
  447.          }
  448.          _volume = param1.volume;
  449.          _soundTransform.volume = scrubbing ? 0 : param1.volume;
  450.          _soundTransform.leftToLeft = param1.leftToLeft;
  451.          _soundTransform.leftToRight = param1.leftToRight;
  452.          _soundTransform.rightToLeft = param1.rightToLeft;
  453.          _soundTransform.rightToRight = param1.rightToRight;
  454.          _loc2_ = flvplayback_internal::videoPlayers[_activeVP];
  455.          _loc2_.soundTransform = _soundTransform;
  456.          dispatchEvent(new SoundEvent(SoundEvent.SOUND_UPDATE,false,false,_loc2_.soundTransform));
  457.       }
  458.       
  459.       public function set seekToPrevOffset(param1:Number) : void
  460.       {
  461.          _seekToPrevOffset = param1;
  462.       }
  463.       
  464.       public function set seekBarScrubTolerance(param1:Number) : void
  465.       {
  466.          flvplayback_internal::uiMgr.seekBarScrubTolerance = param1;
  467.       }
  468.       
  469.       override public function get scaleX() : Number
  470.       {
  471.          var _loc1_:VideoPlayer = null;
  472.          _loc1_ = flvplayback_internal::videoPlayers[_visibleVP];
  473.          return _loc1_.width / _origWidth;
  474.       }
  475.       
  476.       override public function get scaleY() : Number
  477.       {
  478.          var _loc1_:VideoPlayer = null;
  479.          _loc1_ = flvplayback_internal::videoPlayers[_visibleVP];
  480.          return _loc1_.height / _origHeight;
  481.       }
  482.       
  483.       public function get bytesLoaded() : uint
  484.       {
  485.          var _loc1_:VideoPlayer = null;
  486.          _loc1_ = flvplayback_internal::videoPlayers[_activeVP];
  487.          return _loc1_.bytesLoaded;
  488.       }
  489.       
  490.       override public function set height(param1:Number) : void
  491.       {
  492.          var _loc2_:Rectangle = null;
  493.          var _loc3_:Rectangle = null;
  494.          var _loc4_:int = 0;
  495.          var _loc5_:VideoPlayer = null;
  496.          if(isLivePreview)
  497.          {
  498.             setSize(this.width,param1);
  499.             return;
  500.          }
  501.          _loc2_ = new Rectangle(x,y,width,height);
  502.          _loc3_ = new Rectangle(registrationX,registrationY,registrationWidth,registrationHeight);
  503.          flvplayback_internal::resizingNow = true;
  504.          _loc4_ = 0;
  505.          while(_loc4_ < flvplayback_internal::videoPlayers.length)
  506.          {
  507.             if((_loc5_ = flvplayback_internal::videoPlayers[_loc4_]) != null)
  508.             {
  509.                _loc5_.height = param1;
  510.             }
  511.             _loc4_++;
  512.          }
  513.          flvplayback_internal::resizingNow = false;
  514.          dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT,false,false,_loc2_,_loc3_));
  515.       }
  516.       
  517.       public function get forwardButton() : Sprite
  518.       {
  519.          return flvplayback_internal::uiMgr.getControl(UIManager.FORWARD_BUTTON);
  520.       }
  521.       
  522.       public function get seekBarInterval() : Number
  523.       {
  524.          return flvplayback_internal::uiMgr.seekBarInterval;
  525.       }
  526.       
  527.       public function set totalTime(param1:Number) : void
  528.       {
  529.          var _loc2_:VideoPlayerState = null;
  530.          _loc2_ = flvplayback_internal::videoPlayerStates[_activeVP];
  531.          _loc2_.totalTime = param1;
  532.          _loc2_.totalTimeSet = true;
  533.       }
  534.       
  535.       public function set skinAutoHide(param1:Boolean) : void
  536.       {
  537.          if(isLivePreview)
  538.          {
  539.             return;
  540.          }
  541.          flvplayback_internal::uiMgr.skinAutoHide = param1;
  542.       }
  543.       
  544.       public function set bufferTime(param1:Number) : void
  545.       {
  546.          var _loc2_:VideoPlayer = null;
  547.          _loc2_ = flvplayback_internal::videoPlayers[_activeVP];
  548.          _loc2_.bufferTime = param1;
  549.       }
  550.       
  551.       public function get fullScreenSkinDelay() : int
  552.       {
  553.          return flvplayback_internal::uiMgr.fullScreenSkinDelay;
  554.       }
  555.       
  556.       public function seekToNavCuePoint(param1:*) : void
  557.       {
  558.          var _loc2_:Object = null;
  559.          var _loc3_:Object = null;
  560.          if(param1 is String)
  561.          {
  562.             _loc2_ = {"name":String(param1)};
  563.          }
  564.          else if(param1 is Number)
  565.          {
  566.             _loc2_ = {"time":Number(param1)};
  567.          }
  568.          else
  569.          {
  570.             _loc2_ = param1;
  571.          }
  572.          if(_loc2_.name == undefined)
  573.          {
  574.             seekToNextNavCuePoint(_loc2_.time);
  575.             return;
  576.          }
  577.          if(isNaN(_loc2_.time))
  578.          {
  579.             _loc2_.time = 0;
  580.          }
  581.          _loc3_ = findNearestCuePoint(param1,CuePointType.NAVIGATION);
  582.          while(_loc3_ != null && (_loc3_.time < _loc2_.time || !isFLVCuePointEnabled(_loc3_)))
  583.          {
  584.             _loc3_ = findNextCuePointWithName(_loc3_);
  585.          }
  586.          if(_loc3_ == null)
  587.          {
  588.             throw new VideoError(VideoError.INVALID_SEEK);
  589.          }
  590.          seek(_loc3_.time);
  591.       }
  592.       
  593.       private function onCompletePreview(param1:Event) : void
  594.       {
  595.          var e:Event = param1;
  596.          try
  597.          {
  598.             previewImage_mc.width = livePreviewWidth;
  599.             previewImage_mc.height = livePreviewHeight;
  600.          }
  601.          catch(e:Error)
  602.          {
  603.          }
  604.       }
  605.       
  606.       public function set isLive(param1:Boolean) : void
  607.       {
  608.          var _loc2_:VideoPlayerState = null;
  609.          _loc2_ = flvplayback_internal::videoPlayerStates[_activeVP];
  610.          _loc2_.isLive = param1;
  611.          _loc2_.isLiveSet = true;
  612.       }
  613.       
  614.       flvplayback_internal function showSkinNow(param1:TimerEvent) : void
  615.       {
  616.          flvplayback_internal::skinShowTimer = null;
  617.          flvplayback_internal::uiMgr.visible = true;
  618.       }
  619.       
  620.       override public function get x() : Number
  621.       {
  622.          var _loc1_:VideoPlayer = null;
  623.          _loc1_ = flvplayback_internal::videoPlayers[_visibleVP];
  624.          return super.x + _loc1_.x;
  625.       }
  626.       
  627.       override public function get y() : Number
  628.       {
  629.          var _loc1_:VideoPlayer = null;
  630.          _loc1_ = flvplayback_internal::videoPlayers[_visibleVP];
  631.          return super.y + _loc1_.y;
  632.       }
  633.       
  634.       public function get seekBar() : Sprite
  635.       {
  636.          return flvplayback_internal::uiMgr.getControl(UIManager.SEEK_BAR);
  637.       }
  638.       
  639.       public function get volumeBarInterval() : Number
  640.       {
  641.          return flvplayback_internal::uiMgr.volumeBarInterval;
  642.       }
  643.       
  644.       public function set registrationHeight(param1:Number) : void
  645.       {
  646.          height = param1;
  647.       }
  648.       
  649.       public function get bufferingBarHidesAndDisablesOthers() : Boolean
  650.       {
  651.          return flvplayback_internal::uiMgr.bufferingBarHidesAndDisablesOthers;
  652.       }
  653.       
  654.       public function seek(param1:Number) : void
  655.       {
  656.          var _loc2_:VideoPlayerState = null;
  657.          var _loc3_:VideoPlayer = null;
  658.          _loc2_ = flvplayback_internal::videoPlayerStates[_activeVP];
  659.          if(!flvplayback_internal::_firstStreamShown)
  660.          {
  661.             _loc2_.preSeekTime = 0;
  662.             flvplayback_internal::queueCmd(_loc2_,QueuedCommand.SEEK,param1);
  663.          }
  664.          else
  665.          {
  666.             _loc2_.preSeekTime = playheadTime;
  667.             _loc3_ = flvplayback_internal::videoPlayers[_activeVP];
  668.             _loc3_.seek(param1);
  669.          }
  670.       }
  671.       
  672.       public function get state() : String
  673.       {
  674.          var _loc1_:VideoPlayer = null;
  675.          var _loc2_:String = null;
  676.          var _loc3_:VideoPlayerState = null;
  677.          if(isLivePreview)
  678.          {
  679.             return VideoState.STOPPED;
  680.          }
  681.          _loc1_ = flvplayback_internal::videoPlayers[_activeVP];
  682.          if(_activeVP == _visibleVP && scrubbing)
  683.          {
  684.             return VideoState.SEEKING;
  685.          }
  686.          _loc2_ = _loc1_.state;
  687.          if(_loc2_ == VideoState.RESIZING)
  688.          {
  689.             return VideoState.LOADING;
  690.          }
  691.          _loc3_ = flvplayback_internal::videoPlayerStates[_activeVP];
  692.          if(_loc3_.prevState == VideoState.LOADING && _loc3_.autoPlay && _loc2_ == VideoState.STOPPED)
  693.          {
  694.             return VideoState.LOADING;
  695.          }
  696.          return _loc2_;
  697.       }
  698.       
  699.       public function set autoRewind(param1:Boolean) : void
  700.       {
  701.          var _loc2_:VideoPlayer = null;
  702.          if(_activeVP == 0)
  703.          {
  704.             _autoRewind = param1;
  705.          }
  706.          _loc2_ = flvplayback_internal::videoPlayers[_activeVP];
  707.          _loc2_.autoRewind = param1;
  708.       }
  709.       
  710.       public function get volumeBar() : Sprite
  711.       {
  712.          return flvplayback_internal::uiMgr.getControl(UIManager.VOLUME_BAR);
  713.       }
  714.       
  715.       flvplayback_internal function skinError(param1:String) : void
  716.       {
  717.          if(isLivePreview)
  718.          {
  719.             return;
  720.          }
  721.          if(flvplayback_internal::_firstStreamReady && !flvplayback_internal::_firstStreamShown)
  722.          {
  723.             flvplayback_internal::showFirstStream();
  724.          }
  725.          dispatchEvent(new SkinErrorEvent(SkinErrorEvent.SKIN_ERROR,false,false,param1));
  726.       }
  727.       
  728.       override public function set scaleX(param1:Number) : void
  729.       {
  730.          var _loc2_:Rectangle = null;
  731.          var _loc3_:Rectangle = null;
  732.          var _loc4_:int = 0;
  733.          var _loc5_:VideoPlayer = null;
  734.          _loc2_ = new Rectangle(x,y,width,height);
  735.          _loc3_ = new Rectangle(registrationX,registrationY,registrationWidth,registrationHeight);
  736.          flvplayback_internal::resizingNow = true;
  737.          _loc4_ = 0;
  738.          while(_loc4_ < flvplayback_internal::videoPlayers.length)
  739.          {
  740.             if((_loc5_ = flvplayback_internal::videoPlayers[_loc4_]) !== null)
  741.             {
  742.                _loc5_.width = _origWidth * param1;
  743.             }
  744.             _loc4_++;
  745.          }
  746.          flvplayback_internal::resizingNow = false;
  747.          dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT,false,false,_loc2_,_loc3_));
  748.       }
  749.       
  750.       override public function set scaleY(param1:Number) : void
  751.       {
  752.          var _loc2_:Rectangle = null;
  753.          var _loc3_:Rectangle = null;
  754.          var _loc4_:int = 0;
  755.          var _loc5_:VideoPlayer = null;
  756.          _loc2_ = new Rectangle(x,y,width,height);
  757.          _loc3_ = new Rectangle(registrationX,registrationY,registrationWidth,registrationHeight);
  758.          flvplayback_internal::resizingNow = true;
  759.          _loc4_ = 0;
  760.          while(_loc4_ < flvplayback_internal::videoPlayers.length)
  761.          {
  762.             if((_loc5_ = flvplayback_internal::videoPlayers[_loc4_]) !== null)
  763.             {
  764.                _loc5_.height = _origHeight * param1;
  765.             }
  766.             _loc4_++;
  767.          }
  768.          flvplayback_internal::resizingNow = false;
  769.          dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT,false,false,_loc2_,_loc3_));
  770.       }
  771.       
  772.       flvplayback_internal function createVideoPlayer(param1:Number) : void
  773.       {
  774.          var vp:VideoPlayer = null;
  775.          var added:Boolean = false;
  776.          var vpState:VideoPlayerState = null;
  777.          var cpMgr:CuePointManager = null;
  778.          var skinDepth:int = 0;
  779.          var index:Number = param1;
  780.          if(isLivePreview)
  781.          {
  782.             return;
  783.          }
  784.          vp = flvplayback_internal::videoPlayers[index];
  785.          if(vp == null)
  786.          {
  787.             flvplayback_internal::videoPlayers[index] = vp = new VideoPlayer(0,0);
  788.             vp.setSize(registrationWidth,registrationHeight);
  789.          }
  790.          vp.visible = false;
  791.          vp.volume = 0;
  792.          vp.name = String(index);
  793.          added = false;
  794.          if(flvplayback_internal::uiMgr.flvplayback_internal::skin_mc != null)
  795.          {
  796.             try
  797.             {
  798.                skinDepth = getChildIndex(flvplayback_internal::uiMgr.flvplayback_internal::skin_mc);
  799.                if(skinDepth > 0)
  800.                {
  801.                   addChildAt(vp,skinDepth);
  802.                   added = true;
  803.                }
  804.             }
  805.             catch(err:Error)
  806.             {
  807.             }
  808.          }
  809.          if(!added)
  810.          {
  811.             addChild(vp);
  812.          }
  813.          _topVP = index;
  814.          vp.autoRewind = _autoRewind;
  815.          vp.scaleMode = _scaleMode;
  816.          vp.bufferTime = _bufferTime;
  817.          vp.idleTimeout = _idleTimeout;
  818.          vp.playheadUpdateInterval = _playheadUpdateInterval;
  819.          vp.progressInterval = _progressInterval;
  820.          vp.soundTransform = _soundTransform;
  821.          vpState = new VideoPlayerState(vp,index);
  822.          flvplayback_internal::videoPlayerStates[index] = vpState;
  823.          flvplayback_internal::videoPlayerStateDict[vp] = vpState;
  824.          vp.addEventListener(AutoLayoutEvent.AUTO_LAYOUT,flvplayback_internal::handleAutoLayoutEvent);
  825.          vp.addEventListener(MetadataEvent.CUE_POINT,flvplayback_internal::handleMetadataEvent);
  826.          vp.addEventListener(MetadataEvent.METADATA_RECEIVED,flvplayback_internal::handleMetadataEvent);
  827.          vp.addEventListener(VideoProgressEvent.PROGRESS,flvplayback_internal::handleVideoProgressEvent);
  828.          vp.addEventListener(fl.video.VideoEvent.AUTO_REWOUND,flvplayback_internal::handleVideoEvent);
  829.          vp.addEventListener(fl.video.VideoEvent.CLOSE,flvplayback_internal::handleVideoEvent);
  830.          vp.addEventListener(fl.video.VideoEvent.COMPLETE,flvplayback_internal::handleVideoEvent);
  831.          vp.addEventListener(fl.video.VideoEvent.PLAYHEAD_UPDATE,flvplayback_internal::handleVideoEvent);
  832.          vp.addEventListener(fl.video.VideoEvent.STATE_CHANGE,flvplayback_internal::handleVideoEvent);
  833.          vp.addEventListener(fl.video.VideoEvent.READY,flvplayback_internal::handleVideoEvent);
  834.          cpMgr = new CuePointManager(this,index);
  835.          flvplayback_internal::cuePointMgrs[index] = cpMgr;
  836.          cpMgr.playheadUpdateInterval = _playheadUpdateInterval;
  837.       }
  838.       
  839.       public function findNearestCuePoint(param1:*, param2:String = "all") : Object
  840.       {
  841.          var _loc3_:CuePointManager = null;
  842.          _loc3_ = flvplayback_internal::cuePointMgrs[_activeVP];
  843.          switch(param2)
  844.          {
  845.             case "event":
  846.                return _loc3_.flvplayback_internal::getCuePoint(_loc3_.flvplayback_internal::eventCuePoints,true,param1);
  847.             case "navigation":
  848.                return _loc3_.flvplayback_internal::getCuePoint(_loc3_.flvplayback_internal::navCuePoints,true,param1);
  849.             case "flv":
  850.                return _loc3_.flvplayback_internal::getCuePoint(_loc3_.flvplayback_internal::flvCuePoints,true,param1);
  851.             case "actionscript":
  852.                return _loc3_.flvplayback_internal::getCuePoint(_loc3_.flvplayback_internal::asCuePoints,true,param1);
  853.             case "all":
  854.          }
  855.          return _loc3_.flvplayback_internal::getCuePoint(_loc3_.flvplayback_internal::allCuePoints,true,param1);
  856.       }
  857.       
  858.       public function get muteButton() : Sprite
  859.       {
  860.          return flvplayback_internal::uiMgr.getControl(UIManager.MUTE_BUTTON);
  861.       }
  862.       
  863.       public function seekPercent(param1:Number) : void
  864.       {
  865.          var _loc2_:VideoPlayer = null;
  866.          _loc2_ = flvplayback_internal::videoPlayers[_activeVP];
  867.          if(isNaN(param1) || param1 < 0 || param1 > 100 || isNaN(_loc2_.totalTime) || _loc2_.totalTime <= 0)
  868.          {
  869.             throw new VideoError(VideoError.INVALID_SEEK);
  870.          }
  871.          seek(_loc2_.totalTime * param1 / 100);
  872.       }
  873.       
  874.       public function set forwardButton(param1:Sprite) : void
  875.       {
  876.          flvplayback_internal::uiMgr.setControl(UIManager.FORWARD_BUTTON,param1);
  877.       }
  878.       
  879.       public function get registrationWidth() : Number
  880.       {
  881.          var _loc1_:VideoPlayer = null;
  882.          _loc1_ = flvplayback_internal::videoPlayers[_visibleVP];
  883.          return _loc1_.registrationWidth;
  884.       }
  885.       
  886.       flvplayback_internal function queueCmd(param1:VideoPlayerState, param2:Number, param3:Number = NaN) : void
  887.       {
  888.          if(param1.cmdQueue == null)
  889.          {
  890.             param1.cmdQueue = new Array();
  891.          }
  892.          param1.cmdQueue.push(new QueuedCommand(param2,null,false,param3));
  893.       }
  894.       
  895.       private function doContentPathConnect(param1:*) : void
  896.       {
  897.          var _loc2_:int = 0;
  898.          var _loc3_:VideoPlayer = null;
  899.          var _loc4_:VideoPlayerState = null;
  900.          if(isLivePreview)
  901.          {
  902.             return;
  903.          }
  904.          _loc2_ = 0;
  905.          if(param1 is int)
  906.          {
  907.             _loc2_ = int(param1);
  908.          }
  909.          else
  910.          {
  911.             removeEventListener(Event.ENTER_FRAME,doContentPathConnect);
  912.          }
  913.          _loc3_ = flvplayback_internal::videoPlayers[_loc2_];
  914.          if(!(_loc4_ = flvplayback_internal::videoPlayerStates[_loc2_]).isWaiting)
  915.          {
  916.             return;
  917.          }
  918.          if(_loc4_.autoPlay && flvplayback_internal::_firstStreamShown)
  919.          {
  920.             _loc3_.play(_loc4_.url,_loc4_.totalTime,_loc4_.isLive);
  921.          }
  922.          else
  923.          {
  924.             _loc3_.load(_loc4_.url,_loc4_.totalTime,_loc4_.isLive);
  925.          }
  926.          _loc4_.isLiveSet = false;
  927.          _loc4_.totalTimeSet = false;
  928.          _loc4_.isWaiting = false;
  929.       }
  930.       
  931.       public function get registrationX() : Number
  932.       {
  933.          return super.x;
  934.       }
  935.       
  936.       public function bringVideoPlayerToFront(param1:uint) : void
  937.       {
  938.          var vp:VideoPlayer = null;
  939.          var moved:Boolean = false;
  940.          var skinDepth:int = 0;
  941.          var index:uint = param1;
  942.          if(index == _topVP)
  943.          {
  944.             return;
  945.          }
  946.          vp = flvplayback_internal::videoPlayers[index];
  947.          if(vp == null)
  948.          {
  949.             flvplayback_internal::createVideoPlayer(index);
  950.             vp = flvplayback_internal::videoPlayers[index];
  951.          }
  952.          moved = false;
  953.          if(flvplayback_internal::uiMgr.flvplayback_internal::skin_mc != null)
  954.          {
  955.             try
  956.             {
  957.                skinDepth = getChildIndex(flvplayback_internal::uiMgr.flvplayback_internal::skin_mc);
  958.                if(skinDepth > 0)
  959.                {
  960.                   setChildIndex(vp,skinDepth - 1);
  961.                   moved = true;
  962.                }
  963.             }
  964.             catch(err:Error)
  965.             {
  966.             }
  967.          }
  968.          if(!moved)
  969.          {
  970.             setChildIndex(vp,numChildren - 1);
  971.          }
  972.          _topVP = index;
  973.       }
  974.       
  975.       public function get registrationY() : Number
  976.       {
  977.          return super.y;
  978.       }
  979.       
  980.       public function get pauseButton() : Sprite
  981.       {
  982.          return flvplayback_internal::uiMgr.getControl(UIManager.PAUSE_BUTTON);
  983.       }
  984.       
  985.       public function set seekBarInterval(param1:Number) : void
  986.       {
  987.          flvplayback_internal::uiMgr.seekBarInterval = param1;
  988.       }
  989.       
  990.       public function addASCuePoint(param1:*, param2:String = null, param3:Object = null) : Object
  991.       {
  992.          var _loc4_:CuePointManager = null;
  993.          return (_loc4_ = flvplayback_internal::cuePointMgrs[_activeVP]).addASCuePoint(param1,param2,param3);
  994.       }
  995.       
  996.       public function get playheadPercentage() : Number
  997.       {
  998.          var _loc1_:VideoPlayer = null;
  999.          _loc1_ = flvplayback_internal::videoPlayers[_activeVP];
  1000.          if(isNaN(_loc1_.totalTime))
  1001.          {
  1002.             return NaN;
  1003.          }
  1004.          return _loc1_.playheadTime / _loc1_.totalTime * 100;
  1005.       }
  1006.       
  1007.       public function setFLVCuePointEnabled(param1:Boolean, param2:*) : Number
  1008.       {
  1009.          var _loc3_:CuePointManager = null;
  1010.          _loc3_ = flvplayback_internal::cuePointMgrs[_activeVP];
  1011.          return _loc3_.setFLVCuePointEnabled(param1,param2);
  1012.       }
  1013.       
  1014.       public function set fullScreenSkinDelay(param1:int) : void
  1015.       {
  1016.          flvplayback_internal::uiMgr.fullScreenSkinDelay = param1;
  1017.       }
  1018.       
  1019.       public function seekToNextNavCuePoint(param1:Number = NaN) : void
  1020.       {
  1021.          var _loc2_:VideoPlayer = null;
  1022.          var _loc3_:Object = null;
  1023.          var _loc4_:Number = NaN;
  1024.          _loc2_ = flvplayback_internal::videoPlayers[_activeVP];
  1025.          if(isNaN(param1) || param1 < 0)
  1026.          {
  1027.             param1 = _loc2_.playheadTime + 0.001;
  1028.          }
  1029.          _loc3_ = findNearestCuePoint(param1,CuePointType.NAVIGATION);
  1030.          if(_loc3_ == null)
  1031.          {
  1032.             seek(_loc2_.totalTime);
  1033.             return;
  1034.          }
  1035.          _loc4_ = Number(_loc3_.index);
  1036.          if(_loc3_.time < param1)
  1037.          {
  1038.             _loc4_++;
  1039.          }
  1040.          while(_loc4_ < _loc3_.array.length && !isFLVCuePointEnabled(_loc3_.array[_loc4_]))
  1041.          {
  1042.             _loc4_++;
  1043.          }
  1044.          if(_loc4_ >= _loc3_.array.length)
  1045.          {
  1046.             param1 = _loc2_.totalTime;
  1047.             if(_loc3_.array[_loc3_.array.length - 1].time > param1)
  1048.             {
  1049.                param1 = Number(_loc3_.array[_loc3_.array.length - 1]);
  1050.             }
  1051.             seek(param1);
  1052.          }
  1053.          else
  1054.          {
  1055.             seek(_loc3_.array[_loc4_].time);
  1056.          }
  1057.       }
  1058.       
  1059.       public function load(param1:String, param2:Number = NaN, param3:Boolean = false) : void
  1060.       {
  1061.          if(param1 == null || param1.length == 0)
  1062.          {
  1063.             return;
  1064.          }
  1065.          if(param1 == this.source)
  1066.          {
  1067.             return;
  1068.          }
  1069.          this.autoPlay = false;
  1070.          this.totalTime = param2;
  1071.          this.isLive = param3;
  1072.          this.source = param1;
  1073.       }
  1074.       
  1075.       public function seekSeconds(param1:Number) : void
  1076.       {
  1077.          seek(param1);
  1078.       }
  1079.       
  1080.       public function get fullScreenButton() : Sprite
  1081.       {
  1082.          return flvplayback_internal::uiMgr.getControl(UIManager.FULL_SCREEN_BUTTON);
  1083.       }
  1084.       
  1085.       public function get scrubbing() : Boolean
  1086.       {
  1087.          var _loc1_:Sprite = null;
  1088.          var _loc2_:ControlData = null;
  1089.          _loc1_ = seekBar;
  1090.          if(_loc1_ != null)
  1091.          {
  1092.             _loc2_ = flvplayback_internal::uiMgr.ctrlDataDict[_loc1_];
  1093.             return _loc2_.isDragging;
  1094.          }
  1095.          return false;
  1096.       }
  1097.       
  1098.       override public function set y(param1:Number) : void
  1099.       {
  1100.          var _loc2_:VideoPlayer = null;
  1101.          _loc2_ = flvplayback_internal::videoPlayers[_visibleVP];
  1102.          super.y = param1 - _loc2_.y;
  1103.       }
  1104.       
  1105.       public function removeASCuePoint(param1:*) : Object
  1106.       {
  1107.          var _loc2_:CuePointManager = null;
  1108.          _loc2_ = flvplayback_internal::cuePointMgrs[_activeVP];
  1109.          return _loc2_.removeASCuePoint(param1);
  1110.       }
  1111.       
  1112.       public function get fullScreenTakeOver() : Boolean
  1113.       {
  1114.          return flvplayback_internal::uiMgr.fullScreenTakeOver;
  1115.       }
  1116.       
  1117.       override public function set x(param1:Number) : void
  1118.       {
  1119.          var _loc2_:VideoPlayer = null;
  1120.          _loc2_ = flvplayback_internal::videoPlayers[_visibleVP];
  1121.          super.x = param1 - _loc2_.x;
  1122.       }
  1123.       
  1124.       public function get backButton() : Sprite
  1125.       {
  1126.          return flvplayback_internal::uiMgr.getControl(UIManager.BACK_BUTTON);
  1127.       }
  1128.       
  1129.       public function set seekBar(param1:Sprite) : void
  1130.       {
  1131.          flvplayback_internal::uiMgr.setControl(UIManager.SEEK_BAR,param1);
  1132.       }
  1133.       
  1134.       public function set skin(param1:String) : void
  1135.       {
  1136.          flvplayback_internal::uiMgr.skin = param1;
  1137.       }
  1138.       
  1139.       public function set componentInspectorSetting(param1:Boolean) : void
  1140.       {
  1141.          _componentInspectorSetting = param1;
  1142.       }
  1143.       
  1144.       public function get preferredHeight() : int
  1145.       {
  1146.          var _loc1_:VideoPlayer = null;
  1147.          _loc1_ = flvplayback_internal::videoPlayers[_activeVP];
  1148.          return _loc1_.videoHeight;
  1149.       }
  1150.       
  1151.       public function set volumeBarInterval(param1:Number) : void
  1152.       {
  1153.          flvplayback_internal::uiMgr.volumeBarInterval = param1;
  1154.       }
  1155.       
  1156.       public function set autoPlay(param1:Boolean) : void
  1157.       {
  1158.          var _loc2_:VideoPlayerState = null;
  1159.          _loc2_ = flvplayback_internal::videoPlayerStates[_activeVP];
  1160.          _loc2_.autoPlay = param1;
  1161.       }
  1162.       
  1163.       public function set visibleVideoPlayerIndex(param1:uint) : void
  1164.       {
  1165.          var _loc2_:VideoPlayer = null;
  1166.          var _loc3_:VideoPlayer = null;
  1167.          var _loc4_:uint = 0;
  1168.          var _loc5_:Rectangle = null;
  1169.          var _loc6_:Rectangle = null;
  1170.          if(_visibleVP == param1)
  1171.          {
  1172.             return;
  1173.          }
  1174.          if(flvplayback_internal::videoPlayers[param1] == undefined)
  1175.          {
  1176.             flvplayback_internal::createVideoPlayer(param1);
  1177.          }
  1178.          _loc2_ = flvplayback_internal::videoPlayers[param1];
  1179.          _loc3_ = flvplayback_internal::videoPlayers[_visibleVP];
  1180.          _loc3_.visible = false;
  1181.          _loc3_.volume = 0;
  1182.          _visibleVP = param1;
  1183.          if(flvplayback_internal::_firstStreamShown)
  1184.          {
  1185.             flvplayback_internal::uiMgr.flvplayback_internal::setupSkinAutoHide(false);
  1186.             _loc2_.visible = true;
  1187.             _soundTransform.volume = !scrubbing ? 0 : _volume;
  1188.             _loc2_.soundTransform = _soundTransform;
  1189.          }
  1190.          else if((_loc2_.stateResponsive || _loc2_.state == VideoState.CONNECTION_ERROR || _loc2_.state == VideoState.DISCONNECTED) && flvplayback_internal::uiMgr.skinReady)
  1191.          {
  1192.             flvplayback_internal::uiMgr.visible = true;
  1193.             flvplayback_internal::uiMgr.flvplayback_internal::setupSkinAutoHide(false);
  1194.             flvplayback_internal::_firstStreamReady = true;
  1195.             if(flvplayback_internal::uiMgr.skin == "")
  1196.             {
  1197.                flvplayback_internal::uiMgr.flvplayback_internal::hookUpCustomComponents();
  1198.             }
  1199.             flvplayback_internal::showFirstStream();
  1200.          }
  1201.          if(_loc2_.height != _loc3_.height || _loc2_.width != _loc3_.width)
  1202.          {
  1203.             _loc5_ = new Rectangle(_loc3_.x + super.x,_loc3_.y + super.y,_loc3_.width,_loc3_.height);
  1204.             _loc6_ = new Rectangle(_loc3_.registrationX + super.x,_loc3_.registrationY + super.y,_loc3_.registrationWidth,_loc3_.registrationHeight);
  1205.             dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT,false,false,_loc5_,_loc6_));
  1206.          }
  1207.          _loc4_ = _activeVP;
  1208.          _activeVP = _visibleVP;
  1209.          flvplayback_internal::uiMgr.flvplayback_internal::handleIVPEvent(new fl.video.VideoEvent(fl.video.VideoEvent.STATE_CHANGE,false,false,state,playheadTime,_visibleVP));
  1210.          flvplayback_internal::uiMgr.flvplayback_internal::handleIVPEvent(new fl.video.VideoEvent(fl.video.VideoEvent.PLAYHEAD_UPDATE,false,false,state,playheadTime,_visibleVP));
  1211.          if(_loc2_.isRTMP)
  1212.          {
  1213.             flvplayback_internal::uiMgr.flvplayback_internal::handleIVPEvent(new fl.video.VideoEvent(fl.video.VideoEvent.READY,false,false,state,playheadTime,_visibleVP));
  1214.          }
  1215.          else
  1216.          {
  1217.             flvplayback_internal::uiMgr.flvplayback_internal::handleIVPEvent(new VideoProgressEvent(VideoProgressEvent.PROGRESS,false,false,bytesLoaded,bytesTotal,_visibleVP));
  1218.          }
  1219.          _activeVP = _loc4_;
  1220.       }
  1221.       
  1222.       public function get bufferingBar() : Sprite
  1223.       {
  1224.          return flvplayback_internal::uiMgr.getControl(UIManager.BUFFERING_BAR);
  1225.       }
  1226.       
  1227.       flvplayback_internal function _scrubStart() : void
  1228.       {
  1229.          var _loc1_:Number = NaN;
  1230.          var _loc2_:VideoPlayer = null;
  1231.          _loc1_ = playheadTime;
  1232.          _loc2_ = flvplayback_internal::videoPlayers[_visibleVP];
  1233.          _volume = _loc2_.volume;
  1234.          _loc2_.volume = 0;
  1235.          dispatchEvent(new fl.video.VideoEvent(fl.video.VideoEvent.STATE_CHANGE,false,false,VideoState.SEEKING,_loc1_,_visibleVP));
  1236.          dispatchEvent(new fl.video.VideoEvent(fl.video.VideoEvent.SCRUB_START,false,false,VideoState.SEEKING,_loc1_,_visibleVP));
  1237.       }
  1238.       
  1239.       public function get align() : String
  1240.       {
  1241.          var _loc1_:VideoPlayer = null;
  1242.          _loc1_ = flvplayback_internal::videoPlayers[_activeVP];
  1243.          return _loc1_.align;
  1244.       }
  1245.       
  1246.       flvplayback_internal function handleAutoLayoutEvent(param1:AutoLayoutEvent) : void
  1247.       {
  1248.          var _loc2_:VideoPlayerState = null;
  1249.          var _loc3_:AutoLayoutEvent = null;
  1250.          var _loc4_:Rectangle = null;
  1251.          var _loc5_:Rectangle = null;
  1252.          _loc2_ = flvplayback_internal::videoPlayerStateDict[param1.currentTarget];
  1253.          _loc3_ = AutoLayoutEvent(param1.clone());
  1254.          _loc3_.oldBounds.x += super.x;
  1255.          _loc3_.oldBounds.y += super.y;
  1256.          _loc3_.oldRegistrationBounds.x += super.y;
  1257.          _loc3_.oldRegistrationBounds.y += super.y;
  1258.          _loc3_.vp = _loc2_.index;
  1259.          dispatchEvent(_loc3_);
  1260.          if(!flvplayback_internal::resizingNow && _loc2_.index == _visibleVP)
  1261.          {
  1262.             _loc4_ = Rectangle(param1.oldBounds.clone());
  1263.             _loc5_ = Rectangle(param1.oldRegistrationBounds.clone());
  1264.             _loc4_.x += super.x;
  1265.             _loc4_.y += super.y;
  1266.             _loc5_.x += super.y;
  1267.             _loc5_.y += super.y;
  1268.             dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT,false,false,_loc4_,_loc5_));
  1269.          }
  1270.       }
  1271.       
  1272.       public function findNextCuePointWithName(param1:Object) : Object
  1273.       {
  1274.          var _loc2_:CuePointManager = null;
  1275.          _loc2_ = flvplayback_internal::cuePointMgrs[_activeVP];
  1276.          return _loc2_.flvplayback_internal::getNextCuePointWithName(param1);
  1277.       }
  1278.       
  1279.       public function set playButton(param1:Sprite) : void
  1280.       {
  1281.          flvplayback_internal::uiMgr.setControl(UIManager.PLAY_BUTTON,param1);
  1282.       }
  1283.       
  1284.       public function set bitrate(param1:Number) : void
  1285.       {
  1286.          ncMgr.bitrate = param1;
  1287.       }
  1288.       
  1289.       public function set bufferingBarHidesAndDisablesOthers(param1:Boolean) : void
  1290.       {
  1291.          flvplayback_internal::uiMgr.bufferingBarHidesAndDisablesOthers = param1;
  1292.       }
  1293.       
  1294.       override public function get soundTransform() : SoundTransform
  1295.       {
  1296.          var _loc1_:VideoPlayer = null;
  1297.          var _loc2_:SoundTransform = null;
  1298.          _loc1_ = flvplayback_internal::videoPlayers[_visibleVP];
  1299.          _loc2_ = _loc1_.soundTransform;
  1300.          if(scrubbing)
  1301.          {
  1302.             _loc2_.volume = _volume;
  1303.          }
  1304.          return _loc2_;
  1305.       }
  1306.       
  1307.       public function get stateResponsive() : Boolean
  1308.       {
  1309.          var _loc1_:VideoPlayer = null;
  1310.          _loc1_ = flvplayback_internal::videoPlayers[_activeVP];
  1311.          return _loc1_.stateResponsive;
  1312.       }
  1313.       
  1314.       public function get idleTimeout() : Number
  1315.       {
  1316.          var _loc1_:VideoPlayer = null;
  1317.          _loc1_ = flvplayback_internal::videoPlayers[_activeVP];
  1318.          return _loc1_.idleTimeout;
  1319.       }
  1320.       
  1321.       override public function get height() : Number
  1322.       {
  1323.          var _loc1_:VideoPlayer = null;
  1324.          if(isLivePreview)
  1325.          {
  1326.             return livePreviewHeight;
  1327.          }
  1328.          _loc1_ = flvplayback_internal::videoPlayers[_visibleVP];
  1329.          return _loc1_.height;
  1330.       }
  1331.       
  1332.       public function set registrationWidth(param1:Number) : void
  1333.       {
  1334.          width = param1;
  1335.       }
  1336.       
  1337.       public function get metadata() : Object
  1338.       {
  1339.          var _loc1_:VideoPlayer = null;
  1340.          _loc1_ = flvplayback_internal::videoPlayers[_activeVP];
  1341.          return _loc1_.metadata;
  1342.       }
  1343.       
  1344.       public function set skinBackgroundColor(param1:uint) : void
  1345.       {
  1346.          flvplayback_internal::uiMgr.skinBackgroundColor = param1;
  1347.       }
  1348.       
  1349.       public function get volume() : Number
  1350.       {
  1351.          return _volume;
  1352.       }
  1353.       
  1354.       public function play(param1:String = null, param2:Number = NaN, param3:Boolean = false) : void
  1355.       {
  1356.          var _loc4_:VideoPlayerState = null;
  1357.          var _loc5_:VideoPlayer = null;
  1358.          if(param1 == null)
  1359.          {
  1360.             if(!flvplayback_internal::_firstStreamShown)
  1361.             {
  1362.                _loc4_ = flvplayback_internal::videoPlayerStates[_activeVP];
  1363.                flvplayback_internal::queueCmd(_loc4_,QueuedCommand.PLAY);
  1364.             }
  1365.             else
  1366.             {
  1367.                (_loc5_ = flvplayback_internal::videoPlayers[_activeVP]).play();
  1368.             }
  1369.          }
  1370.          else
  1371.          {
  1372.             if(param1 == this.source)
  1373.             {
  1374.                return;
  1375.             }
  1376.             this.autoPlay = true;
  1377.             this.totalTime = param2;
  1378.             this.isLive = param3;
  1379.             this.source = param1;
  1380.          }
  1381.       }
  1382.       
  1383.       public function get paused() : Boolean
  1384.       {
  1385.          return state == VideoState.PAUSED;
  1386.       }
  1387.       
  1388.       flvplayback_internal function handleVideoEvent(param1:fl.video.VideoEvent) : void
  1389.       {
  1390.          var _loc2_:VideoPlayerState = null;
  1391.          var _loc3_:CuePointManager = null;
  1392.          var _loc4_:fl.video.VideoEvent = null;
  1393.          var _loc5_:String = null;
  1394.          var _loc6_:Number = NaN;
  1395.          _loc2_ = flvplayback_internal::videoPlayerStateDict[param1.currentTarget];
  1396.          _loc3_ = flvplayback_internal::cuePointMgrs[_loc2_.index];
  1397.          (_loc4_ = VideoEvent(param1.clone())).vp = _loc2_.index;
  1398.          _loc5_ = _loc2_.index == _visibleVP && scrubbing ? VideoState.SEEKING : param1.state;
  1399.          switch(param1.type)
  1400.          {
  1401.             case fl.video.VideoEvent.AUTO_REWOUND:
  1402.                dispatchEvent(_loc4_);
  1403.                dispatchEvent(new fl.video.VideoEvent(fl.video.VideoEvent.REWIND,false,false,_loc5_,param1.playheadTime,_loc2_.index));
  1404.                _loc3_.resetASCuePointIndex(param1.playheadTime);
  1405.                break;
  1406.             case fl.video.VideoEvent.PLAYHEAD_UPDATE:
  1407.                _loc4_.state = _loc5_;
  1408.                dispatchEvent(_loc4_);
  1409.                if(!isNaN(_loc2_.preSeekTime) && param1.state != VideoState.SEEKING)
  1410.                {
  1411.                   _loc6_ = _loc2_.preSeekTime;
  1412.                   _loc2_.preSeekTime = NaN;
  1413.                   _loc3_.resetASCuePointIndex(param1.playheadTime);
  1414.                   dispatchEvent(new fl.video.VideoEvent(fl.video.VideoEvent.SEEKED,false,false,param1.state,param1.playheadTime,_loc2_.index));
  1415.                   if(_loc6_ < param1.playheadTime)
  1416.                   {
  1417.                      dispatchEvent(new fl.video.VideoEvent(fl.video.VideoEvent.FAST_FORWARD,false,false,param1.state,param1.playheadTime,_loc2_.index));
  1418.                   }
  1419.                   else if(_loc6_ > param1.playheadTime)
  1420.                   {
  1421.                      dispatchEvent(new fl.video.VideoEvent(fl.video.VideoEvent.REWIND,false,false,param1.state,param1.playheadTime,_loc2_.index));
  1422.                   }
  1423.                }
  1424.                _loc3_.dispatchASCuePoints();
  1425.                break;
  1426.             case fl.video.VideoEvent.STATE_CHANGE:
  1427.                if(_loc2_.index == _visibleVP && scrubbing)
  1428.                {
  1429.                   break;
  1430.                }
  1431.                if(param1.state == VideoState.RESIZING)
  1432.                {
  1433.                   break;
  1434.                }
  1435.                if(_loc2_.prevState == VideoState.LOADING && _loc2_.autoPlay && param1.state == VideoState.STOPPED)
  1436.                {
  1437.                   return;
  1438.                }
  1439.                if(param1.state == VideoState.CONNECTION_ERROR && param1.vp == _visibleVP && !flvplayback_internal::_firstStreamShown && flvplayback_internal::uiMgr.skinReady)
  1440.                {
  1441.                   flvplayback_internal::showFirstStream();
  1442.                   flvplayback_internal::uiMgr.visible = true;
  1443.                   if(flvplayback_internal::uiMgr.skin == "")
  1444.                   {
  1445.                      flvplayback_internal::uiMgr.flvplayback_internal::hookUpCustomComponents();
  1446.                   }
  1447.                   if(flvplayback_internal::skinShowTimer != null)
  1448.                   {
  1449.                      flvplayback_internal::skinShowTimer.reset();
  1450.                      flvplayback_internal::skinShowTimer = null;
  1451.                   }
  1452.                }
  1453.                _loc2_.prevState = param1.state;
  1454.                _loc4_.state = _loc5_;
  1455.                dispatchEvent(_loc4_);
  1456.                if(_loc2_.owner.state != param1.state)
  1457.                {
  1458.                   return;
  1459.                }
  1460.                switch(param1.state)
  1461.                {
  1462.                   case VideoState.BUFFERING:
  1463.                      dispatchEvent(new fl.video.VideoEvent(fl.video.VideoEvent.BUFFERING_STATE_ENTERED,false,false,_loc5_,param1.playheadTime,_loc2_.index));
  1464.                      break;
  1465.                   case VideoState.PAUSED:
  1466.                      dispatchEvent(new fl.video.VideoEvent(fl.video.VideoEvent.PAUSED_STATE_ENTERED,false,false,_loc5_,param1.playheadTime,_loc2_.index));
  1467.                      break;
  1468.                   case VideoState.PLAYING:
  1469.                      dispatchEvent(new fl.video.VideoEvent(fl.video.VideoEvent.PLAYING_STATE_ENTERED,false,false,_loc5_,param1.playheadTime,_loc2_.index));
  1470.                      break;
  1471.                   case VideoState.STOPPED:
  1472.                      dispatchEvent(new fl.video.VideoEvent(fl.video.VideoEvent.STOPPED_STATE_ENTERED,false,false,_loc5_,param1.playheadTime,_loc2_.index));
  1473.                }
  1474.                break;
  1475.             case fl.video.VideoEvent.READY:
  1476.                if(!flvplayback_internal::_firstStreamReady)
  1477.                {
  1478.                   if(_loc2_.index == _visibleVP)
  1479.                   {
  1480.                      flvplayback_internal::_firstStreamReady = true;
  1481.                      if(flvplayback_internal::uiMgr.skinReady && !flvplayback_internal::_firstStreamShown)
  1482.                      {
  1483.                         flvplayback_internal::uiMgr.visible = true;
  1484.                         if(flvplayback_internal::uiMgr.skin == "")
  1485.                         {
  1486.                            flvplayback_internal::uiMgr.flvplayback_internal::hookUpCustomComponents();
  1487.                         }
  1488.                         flvplayback_internal::showFirstStream();
  1489.                      }
  1490.                   }
  1491.                }
  1492.                else if(flvplayback_internal::_firstStreamShown && param1.state == VideoState.STOPPED && _loc2_.autoPlay)
  1493.                {
  1494.                   if(_loc2_.owner.isRTMP)
  1495.                   {
  1496.                      _loc2_.owner.play();
  1497.                   }
  1498.                   else
  1499.                   {
  1500.                      _loc2_.prevState = VideoState.STOPPED;
  1501.                      _loc2_.owner.playWhenEnoughDownloaded();
  1502.                   }
  1503.                }
  1504.                _loc4_.state = _loc5_;
  1505.                dispatchEvent(_loc4_);
  1506.                break;
  1507.             case fl.video.VideoEvent.CLOSE:
  1508.             case fl.video.VideoEvent.COMPLETE:
  1509.                _loc4_.state = _loc5_;
  1510.                dispatchEvent(_loc4_);
  1511.          }
  1512.       }
  1513.       
  1514.       public function set volumeBar(param1:Sprite) : void
  1515.       {
  1516.          flvplayback_internal::uiMgr.setControl(UIManager.VOLUME_BAR,param1);
  1517.       }
  1518.       
  1519.       public function set fullScreenBackgroundColor(param1:uint) : void
  1520.       {
  1521.          flvplayback_internal::uiMgr.fullScreenBackgroundColor = param1;
  1522.       }
  1523.       
  1524.       public function get isLive() : Boolean
  1525.       {
  1526.          var _loc1_:VideoPlayerState = null;
  1527.          var _loc2_:VideoPlayer = null;
  1528.          _loc1_ = flvplayback_internal::videoPlayerStates[_activeVP];
  1529.          if(_loc1_.isLiveSet)
  1530.          {
  1531.             return _loc1_.isLive;
  1532.          }
  1533.          _loc2_ = flvplayback_internal::videoPlayers[_activeVP];
  1534.          return _loc2_.isLive;
  1535.       }
  1536.       
  1537.       public function get bufferTime() : Number
  1538.       {
  1539.          var _loc1_:VideoPlayer = null;
  1540.          _loc1_ = flvplayback_internal::videoPlayers[_activeVP];
  1541.          return _loc1_.bufferTime;
  1542.       }
  1543.       
  1544.       public function get registrationHeight() : Number
  1545.       {
  1546.          var _loc1_:VideoPlayer = null;
  1547.          _loc1_ = flvplayback_internal::videoPlayers[_visibleVP];
  1548.          return _loc1_.registrationHeight;
  1549.       }
  1550.       
  1551.       public function get playPauseButton() : Sprite
  1552.       {
  1553.          return flvplayback_internal::uiMgr.getControl(UIManager.PLAY_PAUSE_BUTTON);
  1554.       }
  1555.       
  1556.       flvplayback_internal function showFirstStream() : void
  1557.       {
  1558.          var _loc1_:VideoPlayer = null;
  1559.          var _loc2_:int = 0;
  1560.          var _loc3_:VideoPlayerState = null;
  1561.          var _loc4_:int = 0;
  1562.          flvplayback_internal::_firstStreamShown = true;
  1563.          _loc1_ = flvplayback_internal::videoPlayers[_visibleVP];
  1564.          _loc1_.visible = true;
  1565.          if(!scrubbing)
  1566.          {
  1567.             _soundTransform.volume = _volume;
  1568.             _loc1_.soundTransform = _soundTransform;
  1569.          }
  1570.          _loc2_ = 0;
  1571.          while(_loc2_ < flvplayback_internal::videoPlayers.length)
  1572.          {
  1573.             _loc1_ = flvplayback_internal::videoPlayers[_loc2_];
  1574.             if(_loc1_ != null)
  1575.             {
  1576.                _loc3_ = flvplayback_internal::videoPlayerStates[_loc2_];
  1577.                if(_loc1_.state == VideoState.STOPPED && _loc3_.autoPlay)
  1578.                {
  1579.                   if(_loc1_.isRTMP)
  1580.                   {
  1581.                      _loc1_.play();
  1582.                   }
  1583.                   else
  1584.                   {
  1585.                      _loc3_.prevState = VideoState.STOPPED;
  1586.                      _loc1_.playWhenEnoughDownloaded();
  1587.                   }
  1588.                }
  1589.                if(_loc3_.cmdQueue != null)
  1590.                {
  1591.                   _loc4_ = 0;
  1592.                   while(_loc4_ < _loc3_.cmdQueue.length)
  1593.                   {
  1594.                      switch(_loc3_.cmdQueue[_loc4_].type)
  1595.                      {
  1596.                         case QueuedCommand.PLAY:
  1597.                            _loc1_.play();
  1598.                            break;
  1599.                         case QueuedCommand.PAUSE:
  1600.                            _loc1_.pause();
  1601.                            break;
  1602.                         case QueuedCommand.STOP:
  1603.                            _loc1_.stop();
  1604.                            break;
  1605.                         case QueuedCommand.SEEK:
  1606.                            _loc1_.seek(_loc3_.cmdQueue[_loc4_].time);
  1607.                            break;
  1608.                         case QueuedCommand.PLAY_WHEN_ENOUGH:
  1609.                            _loc1_.playWhenEnoughDownloaded();
  1610.                            break;
  1611.                      }
  1612.                      _loc4_++;
  1613.                   }
  1614.                   _loc3_.cmdQueue = null;
  1615.                }
  1616.             }
  1617.             _loc2_++;
  1618.          }
  1619.       }
  1620.       
  1621.       public function set volumeBarScrubTolerance(param1:Number) : void
  1622.       {
  1623.          flvplayback_internal::uiMgr.volumeBarScrubTolerance = param1;
  1624.       }
  1625.       
  1626.       public function set skinBackgroundAlpha(param1:Number) : void
  1627.       {
  1628.          flvplayback_internal::uiMgr.skinBackgroundAlpha = param1;
  1629.       }
  1630.       
  1631.       public function get playheadUpdateInterval() : Number
  1632.       {
  1633.          var _loc1_:VideoPlayer = null;
  1634.          _loc1_ = flvplayback_internal::videoPlayers[_activeVP];
  1635.          return _loc1_.playheadUpdateInterval;
  1636.       }
  1637.       
  1638.       public function set muteButton(param1:Sprite) : void
  1639.       {
  1640.          flvplayback_internal::uiMgr.setControl(UIManager.MUTE_BUTTON,param1);
  1641.       }
  1642.       
  1643.       public function set skinScaleMaximum(param1:Number) : *
  1644.       {
  1645.          flvplayback_internal::uiMgr.skinScaleMaximum = param1;
  1646.       }
  1647.       
  1648.       public function enterFullScreenDisplayState() : void
  1649.       {
  1650.          flvplayback_internal::uiMgr.enterFullScreenDisplayState();
  1651.       }
  1652.       
  1653.       flvplayback_internal function handleMetadataEvent(param1:MetadataEvent) : void
  1654.       {
  1655.          var _loc2_:VideoPlayerState = null;
  1656.          var _loc3_:CuePointManager = null;
  1657.          var _loc4_:MetadataEvent = null;
  1658.          _loc2_ = flvplayback_internal::videoPlayerStateDict[param1.currentTarget];
  1659.          _loc3_ = flvplayback_internal::cuePointMgrs[_loc2_.index];
  1660.          switch(param1.type)
  1661.          {
  1662.             case MetadataEvent.METADATA_RECEIVED:
  1663.                _loc3_.processFLVCuePoints(param1.info.cuePoints);
  1664.                break;
  1665.             case MetadataEvent.CUE_POINT:
  1666.                if(!_loc3_.isFLVCuePointEnabled(param1.info))
  1667.                {
  1668.                   return;
  1669.                }
  1670.                break;
  1671.          }
  1672.          (_loc4_ = MetadataEvent(param1.clone())).vp = _loc2_.index;
  1673.          dispatchEvent(_loc4_);
  1674.       }
  1675.       
  1676.       public function playWhenEnoughDownloaded() : void
  1677.       {
  1678.          var _loc1_:VideoPlayerState = null;
  1679.          var _loc2_:VideoPlayer = null;
  1680.          if(!flvplayback_internal::_firstStreamShown)
  1681.          {
  1682.             _loc1_ = flvplayback_internal::videoPlayerStates[_activeVP];
  1683.             flvplayback_internal::queueCmd(_loc1_,QueuedCommand.PLAY_WHEN_ENOUGH);
  1684.          }
  1685.          else
  1686.          {
  1687.             _loc2_ = flvplayback_internal::videoPlayers[_activeVP];
  1688.             _loc2_.playWhenEnoughDownloaded();
  1689.          }
  1690.       }
  1691.       
  1692.       public function get bitrate() : Number
  1693.       {
  1694.          return ncMgr.bitrate;
  1695.       }
  1696.       
  1697.       public function get autoRewind() : Boolean
  1698.       {
  1699.          var _loc1_:VideoPlayer = null;
  1700.          _loc1_ = flvplayback_internal::videoPlayers[_activeVP];
  1701.          return _loc1_.autoRewind;
  1702.       }
  1703.       
  1704.       public function get fullScreenBackgroundColor() : uint
  1705.       {
  1706.          return flvplayback_internal::uiMgr.fullScreenBackgroundColor;
  1707.       }
  1708.       
  1709.       public function get skin() : String
  1710.       {
  1711.          return flvplayback_internal::uiMgr.skin;
  1712.       }
  1713.       
  1714.       public function set registrationX(param1:Number) : void
  1715.       {
  1716.          super.x = param1;
  1717.       }
  1718.       
  1719.       public function set registrationY(param1:Number) : void
  1720.       {
  1721.          super.y = param1;
  1722.       }
  1723.       
  1724.       public function setSize(param1:Number, param2:Number) : void
  1725.       {
  1726.          var _loc3_:Rectangle = null;
  1727.          var _loc4_:Rectangle = null;
  1728.          var _loc5_:int = 0;
  1729.          var _loc6_:VideoPlayer = null;
  1730.          _loc3_ = new Rectangle(x,y,this.width,this.height);
  1731.          _loc4_ = new Rectangle(registrationX,registrationY,registrationWidth,registrationHeight);
  1732.          if(isLivePreview)
  1733.          {
  1734.             livePreviewWidth = param1;
  1735.             livePreviewHeight = param2;
  1736.             if(previewImage_mc != null)
  1737.             {
  1738.                previewImage_mc.width = param1;
  1739.                previewImage_mc.height = param2;
  1740.             }
  1741.             preview_mc.box_mc.width = param1;
  1742.             preview_mc.box_mc.height = param2;
  1743.             if(preview_mc.box_mc.width < preview_mc.icon_mc.width || preview_mc.box_mc.height < preview_mc.icon_mc.height)
  1744.             {
  1745.                preview_mc.icon_mc.visible = false;
  1746.             }
  1747.             else
  1748.             {
  1749.                preview_mc.icon_mc.visible = true;
  1750.                preview_mc.icon_mc.x = (preview_mc.box_mc.width - preview_mc.icon_mc.width) / 2;
  1751.                preview_mc.icon_mc.y = (preview_mc.box_mc.height - preview_mc.icon_mc.height) / 2;
  1752.             }
  1753.             dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT,false,false,_loc3_,_loc4_));
  1754.             return;
  1755.          }
  1756.          flvplayback_internal::resizingNow = true;
  1757.          _loc5_ = 0;
  1758.          while(_loc5_ < flvplayback_internal::videoPlayers.length)
  1759.          {
  1760.             if((_loc6_ = flvplayback_internal::videoPlayers[_loc5_]) != null)
  1761.             {
  1762.                _loc6_.setSize(param1,param2);
  1763.             }
  1764.             _loc5_++;
  1765.          }
  1766.          flvplayback_internal::resizingNow = false;
  1767.          dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT,false,false,_loc3_,_loc4_));
  1768.       }
  1769.       
  1770.       public function get isRTMP() : Boolean
  1771.       {
  1772.          var _loc1_:VideoPlayer = null;
  1773.          if(isLivePreview)
  1774.          {
  1775.             return true;
  1776.          }
  1777.          _loc1_ = flvplayback_internal::videoPlayers[_activeVP];
  1778.          return _loc1_.isRTMP;
  1779.       }
  1780.       
  1781.       public function set preview(param1:String) : void
  1782.       {
  1783.          var filename:String = param1;
  1784.          if(!isLivePreview)
  1785.          {
  1786.             return;
  1787.          }
  1788.          previewImageUrl = filename;
  1789.          if(previewImage_mc != null)
  1790.          {
  1791.             removeChild(previewImage_mc);
  1792.          }
  1793.          previewImage_mc = new Loader();
  1794.          previewImage_mc.contentLoaderInfo.addEventListener(Event.COMPLETE,onCompletePreview);
  1795.          previewImage_mc.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,function(param1:IOErrorEvent):void
  1796.          {
  1797.          });
  1798.          previewImage_mc.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR,function(param1:SecurityErrorEvent):void
  1799.          {
  1800.          });
  1801.          addChildAt(previewImage_mc,1);
  1802.          previewImage_mc.load(new URLRequest(previewImageUrl));
  1803.       }
  1804.       
  1805.       override public function set width(param1:Number) : void
  1806.       {
  1807.          var _loc2_:Rectangle = null;
  1808.          var _loc3_:Rectangle = null;
  1809.          var _loc4_:int = 0;
  1810.          var _loc5_:VideoPlayer = null;
  1811.          if(isLivePreview)
  1812.          {
  1813.             setSize(param1,this.height);
  1814.             return;
  1815.          }
  1816.          _loc2_ = new Rectangle(x,y,width,height);
  1817.          _loc3_ = new Rectangle(registrationX,registrationY,registrationWidth,registrationHeight);
  1818.          flvplayback_internal::resizingNow = true;
  1819.          _loc4_ = 0;
  1820.          while(_loc4_ < flvplayback_internal::videoPlayers.length)
  1821.          {
  1822.             if((_loc5_ = flvplayback_internal::videoPlayers[_loc4_]) != null)
  1823.             {
  1824.                _loc5_.width = param1;
  1825.             }
  1826.             _loc4_++;
  1827.          }
  1828.          flvplayback_internal::resizingNow = false;
  1829.          dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT,false,false,_loc2_,_loc3_));
  1830.       }
  1831.       
  1832.       public function get playButton() : Sprite
  1833.       {
  1834.          return flvplayback_internal::uiMgr.getControl(UIManager.PLAY_BUTTON);
  1835.       }
  1836.       
  1837.       public function set pauseButton(param1:Sprite) : void
  1838.       {
  1839.          flvplayback_internal::uiMgr.setControl(UIManager.PAUSE_BUTTON,param1);
  1840.       }
  1841.       
  1842.       public function get bytesTotal() : uint
  1843.       {
  1844.          var _loc1_:VideoPlayer = null;
  1845.          _loc1_ = flvplayback_internal::videoPlayers[_activeVP];
  1846.          return _loc1_.bytesTotal;
  1847.       }
  1848.       
  1849.       public function seekToPrevNavCuePoint(param1:Number = NaN) : void
  1850.       {
  1851.          var _loc2_:Object = null;
  1852.          var _loc3_:Number = NaN;
  1853.          var _loc4_:VideoPlayer = null;
  1854.          if(isNaN(param1) || param1 < 0)
  1855.          {
  1856.             param1 = (_loc4_ = flvplayback_internal::videoPlayers[_activeVP]).playheadTime;
  1857.          }
  1858.          _loc2_ = findNearestCuePoint(param1,CuePointType.NAVIGATION);
  1859.          if(_loc2_ == null)
  1860.          {
  1861.             seek(0);
  1862.             return;
  1863.          }
  1864.          _loc3_ = Number(_loc2_.index);
  1865.          while(_loc3_ >= 0 && (!isFLVCuePointEnabled(_loc2_.array[_loc3_]) || _loc2_.array[_loc3_].time >= param1 - _seekToPrevOffset))
  1866.          {
  1867.             _loc3_--;
  1868.          }
  1869.          if(_loc3_ < 0)
  1870.          {
  1871.             seek(0);
  1872.          }
  1873.          else
  1874.          {
  1875.             seek(_loc2_.array[_loc3_].time);
  1876.          }
  1877.       }
  1878.       
  1879.       public function get autoPlay() : Boolean
  1880.       {
  1881.          var _loc1_:VideoPlayerState = null;
  1882.          _loc1_ = flvplayback_internal::videoPlayerStates[_activeVP];
  1883.          return _loc1_.autoPlay;
  1884.       }
  1885.       
  1886.       public function set playheadPercentage(param1:Number) : void
  1887.       {
  1888.          seekPercent(param1);
  1889.       }
  1890.       
  1891.       public function isFLVCuePointEnabled(param1:*) : Boolean
  1892.       {
  1893.          var _loc2_:CuePointManager = null;
  1894.          _loc2_ = flvplayback_internal::cuePointMgrs[_activeVP];
  1895.          return _loc2_.isFLVCuePointEnabled(param1);
  1896.       }
  1897.       
  1898.       public function get buffering() : Boolean
  1899.       {
  1900.          return state == VideoState.BUFFERING;
  1901.       }
  1902.       
  1903.       public function get volumeBarScrubTolerance() : Number
  1904.       {
  1905.          return flvplayback_internal::uiMgr.volumeBarScrubTolerance;
  1906.       }
  1907.       
  1908.       public function get skinBackgroundColor() : uint
  1909.       {
  1910.          return flvplayback_internal::uiMgr.skinBackgroundColor;
  1911.       }
  1912.       
  1913.       public function get visibleVideoPlayerIndex() : uint
  1914.       {
  1915.          return _visibleVP;
  1916.       }
  1917.       
  1918.       public function set stopButton(param1:Sprite) : void
  1919.       {
  1920.          flvplayback_internal::uiMgr.setControl(UIManager.STOP_BUTTON,param1);
  1921.       }
  1922.       
  1923.       public function get skinBackgroundAlpha() : Number
  1924.       {
  1925.          return flvplayback_internal::uiMgr.skinBackgroundAlpha;
  1926.       }
  1927.       
  1928.       public function get skinScaleMaximum() : Number
  1929.       {
  1930.          return flvplayback_internal::uiMgr.skinScaleMaximum;
  1931.       }
  1932.       
  1933.       public function get preferredWidth() : int
  1934.       {
  1935.          var _loc1_:VideoPlayer = null;
  1936.          _loc1_ = flvplayback_internal::videoPlayers[_activeVP];
  1937.          return _loc1_.videoWidth;
  1938.       }
  1939.       
  1940.       override public function get width() : Number
  1941.       {
  1942.          var _loc1_:VideoPlayer = null;
  1943.          if(isLivePreview)
  1944.          {
  1945.             return livePreviewWidth;
  1946.          }
  1947.          _loc1_ = flvplayback_internal::videoPlayers[_visibleVP];
  1948.          return _loc1_.width;
  1949.       }
  1950.       
  1951.       public function get stopped() : Boolean
  1952.       {
  1953.          return state == VideoState.STOPPED;
  1954.       }
  1955.       
  1956.       public function set fullScreenButton(param1:Sprite) : void
  1957.       {
  1958.          flvplayback_internal::uiMgr.setControl(UIManager.FULL_SCREEN_BUTTON,param1);
  1959.       }
  1960.       
  1961.       public function get stopButton() : Sprite
  1962.       {
  1963.          return flvplayback_internal::uiMgr.getControl(UIManager.STOP_BUTTON);
  1964.       }
  1965.       
  1966.       public function set playheadUpdateInterval(param1:Number) : void
  1967.       {
  1968.          var _loc2_:CuePointManager = null;
  1969.          var _loc3_:VideoPlayer = null;
  1970.          if(_activeVP == 0)
  1971.          {
  1972.             _playheadUpdateInterval = param1;
  1973.          }
  1974.          _loc2_ = flvplayback_internal::cuePointMgrs[_activeVP];
  1975.          _loc2_.playheadUpdateInterval = param1;
  1976.          _loc3_ = flvplayback_internal::videoPlayers[_activeVP];
  1977.          _loc3_.playheadUpdateInterval = param1;
  1978.       }
  1979.       
  1980.       private function createLivePreviewMovieClip() : void
  1981.       {
  1982.          preview_mc = new MovieClip();
  1983.          preview_mc.name = "preview_mc";
  1984.          preview_mc.box_mc = new MovieClip();
  1985.          preview_mc.box_mc.name = "box_mc";
  1986.          preview_mc.box_mc.graphics.beginFill(0);
  1987.          preview_mc.box_mc.graphics.moveTo(0,0);
  1988.          preview_mc.box_mc.graphics.lineTo(0,100);
  1989.          preview_mc.box_mc.graphics.lineTo(100,100);
  1990.          preview_mc.box_mc.graphics.lineTo(100,0);
  1991.          preview_mc.box_mc.graphics.lineTo(0,0);
  1992.          preview_mc.box_mc.graphics.endFill();
  1993.          preview_mc.addChild(preview_mc.box_mc);
  1994.          preview_mc.icon_mc = new Icon();
  1995.          preview_mc.icon_mc.name = "icon_mc";
  1996.          preview_mc.addChild(preview_mc.icon_mc);
  1997.          addChild(preview_mc);
  1998.       }
  1999.       
  2000.       public function set idleTimeout(param1:Number) : void
  2001.       {
  2002.          var _loc2_:VideoPlayer = null;
  2003.          if(_activeVP == 0)
  2004.          {
  2005.             _idleTimeout = param1;
  2006.          }
  2007.          _loc2_ = flvplayback_internal::videoPlayers[_activeVP];
  2008.          _loc2_.idleTimeout = param1;
  2009.       }
  2010.       
  2011.       flvplayback_internal function skinLoaded() : void
  2012.       {
  2013.          var _loc1_:VideoPlayer = null;
  2014.          if(isLivePreview)
  2015.          {
  2016.             return;
  2017.          }
  2018.          _loc1_ = flvplayback_internal::videoPlayers[_visibleVP];
  2019.          if(flvplayback_internal::_firstStreamReady || _loc1_.state == VideoState.CONNECTION_ERROR || _loc1_.state == VideoState.DISCONNECTED)
  2020.          {
  2021.             flvplayback_internal::uiMgr.visible = true;
  2022.             if(!flvplayback_internal::_firstStreamShown)
  2023.             {
  2024.                flvplayback_internal::showFirstStream();
  2025.             }
  2026.          }
  2027.          else
  2028.          {
  2029.             if(flvplayback_internal::skinShowTimer != null)
  2030.             {
  2031.                flvplayback_internal::skinShowTimer.reset();
  2032.                flvplayback_internal::skinShowTimer = null;
  2033.             }
  2034.             flvplayback_internal::skinShowTimer = new Timer(flvplayback_internal::DEFAULT_SKIN_SHOW_TIMER_INTERVAL,1);
  2035.             flvplayback_internal::skinShowTimer.addEventListener(TimerEvent.TIMER,flvplayback_internal::showSkinNow);
  2036.             flvplayback_internal::skinShowTimer.start();
  2037.          }
  2038.          dispatchEvent(new fl.video.VideoEvent(fl.video.VideoEvent.SKIN_LOADED,false,false,state,playheadTime,_visibleVP));
  2039.       }
  2040.       
  2041.       flvplayback_internal function _scrubFinish() : void
  2042.       {
  2043.          var _loc1_:Number = NaN;
  2044.          var _loc2_:String = null;
  2045.          var _loc3_:VideoPlayer = null;
  2046.          _loc1_ = playheadTime;
  2047.          _loc2_ = state;
  2048.          _loc3_ = flvplayback_internal::videoPlayers[_visibleVP];
  2049.          _soundTransform.volume = _volume;
  2050.          _loc3_.soundTransform = _soundTransform;
  2051.          if(_loc2_ != VideoState.SEEKING)
  2052.          {
  2053.             dispatchEvent(new fl.video.VideoEvent(fl.video.VideoEvent.STATE_CHANGE,false,false,_loc2_,_loc1_,_visibleVP));
  2054.          }
  2055.          dispatchEvent(new fl.video.VideoEvent(fl.video.VideoEvent.SCRUB_FINISH,false,false,_loc2_,_loc1_,_visibleVP));
  2056.       }
  2057.       
  2058.       public function set playPauseButton(param1:Sprite) : void
  2059.       {
  2060.          flvplayback_internal::uiMgr.setControl(UIManager.PLAY_PAUSE_BUTTON,param1);
  2061.       }
  2062.       
  2063.       public function set backButton(param1:Sprite) : void
  2064.       {
  2065.          flvplayback_internal::uiMgr.setControl(UIManager.BACK_BUTTON,param1);
  2066.       }
  2067.       
  2068.       public function set cuePoints(param1:Array) : void
  2069.       {
  2070.          if(!_componentInspectorSetting)
  2071.          {
  2072.             return;
  2073.          }
  2074.          flvplayback_internal::cuePointMgrs[0].processCuePointsProperty(param1);
  2075.       }
  2076.       
  2077.       public function findCuePoint(param1:*, param2:String = "all") : Object
  2078.       {
  2079.          var _loc3_:CuePointManager = null;
  2080.          _loc3_ = flvplayback_internal::cuePointMgrs[_activeVP];
  2081.          switch(param2)
  2082.          {
  2083.             case "event":
  2084.                return _loc3_.flvplayback_internal::getCuePoint(_loc3_.flvplayback_internal::eventCuePoints,false,param1);
  2085.             case "navigation":
  2086.                return _loc3_.flvplayback_internal::getCuePoint(_loc3_.flvplayback_internal::navCuePoints,false,param1);
  2087.             case "flv":
  2088.                return _loc3_.flvplayback_internal::getCuePoint(_loc3_.flvplayback_internal::flvCuePoints,false,param1);
  2089.             case "actionscript":
  2090.                return _loc3_.flvplayback_internal::getCuePoint(_loc3_.flvplayback_internal::asCuePoints,false,param1);
  2091.             case "all":
  2092.          }
  2093.          return _loc3_.flvplayback_internal::getCuePoint(_loc3_.flvplayback_internal::allCuePoints,false,param1);
  2094.       }
  2095.       
  2096.       public function get seekBarScrubTolerance() : Number
  2097.       {
  2098.          return flvplayback_internal::uiMgr.seekBarScrubTolerance;
  2099.       }
  2100.       
  2101.       flvplayback_internal function handleVideoProgressEvent(param1:VideoProgressEvent) : void
  2102.       {
  2103.          var _loc2_:VideoPlayerState = null;
  2104.          var _loc3_:VideoProgressEvent = null;
  2105.          _loc2_ = flvplayback_internal::videoPlayerStateDict[param1.currentTarget];
  2106.          _loc3_ = VideoProgressEvent(param1.clone());
  2107.          _loc3_.vp = _loc2_.index;
  2108.          dispatchEvent(_loc3_);
  2109.       }
  2110.    }
  2111. }
  2112.